#include<iostream>

using namespace std;

//  继承   ：  is - a

class Person
{
public:
    Person()  // 显式添加默认构造函数
    {

    }

    Person(string name,int id)
    {
        this->name = name;
        this->id = id;
    }
    
    
    private:
    string name;
    int id;



public:
     void eat()
     {
        cout<<"eat"<<endl;

     }

     void sleep()
     {
        cout<<"sleep"<<endl;
     }


};



class Zhangsan : private Person
{
    
    public:
    // 隐藏规则： 编译器默认生成的（前提 ：基类  必须有默认构造函数）
    Zhangsan():Person()  //派生类继承的属性初始化，需要通过基类构造函进行初始化
    {

    }

    using Person::sleep;
    
    
    
    
    private:
    



};




int main()
{

    Zhangsan z;
    
    z.sleep();
    
    return 0;
}



// private继承之后，可以用 using 类名::成员名  来使得 成员可以在类外访问（这是c++11新增的语法）
//                                   记得要写在你想用的 类 的public 里面 

